Adaptive synchronization of service data

ABSTRACT

Techniques are disclosed for synchronizing service data between a data store and a device using the service data. These synchronization techniques may be used with a synchronization method and device that adaptively adjust synchronization parameters, such as the synchronization interval and quantity of synchronized data, on a per-end-user basis in response to actual end-user behavior. In particular, heavy users of service data are rewarded with improved synchronization parameters, such as a combination of shorter synchronization intervals and increased synchronization data quantities, which provides closer to “direct access” performance. Light users of service, on the other hand, are assigned lower cost synchronization parameters, such as longer synchronization intervals and/or decreased synchronization data quantities

[0001] This application claims priority under 35 U.S.C. §120 tocopending U.S. patent application Ser. No. 09/872,753, filed Jun. 1,2001, entitled “System And Method For Progressive And HierarchicalCaching,” which application is incorporated entirely herein byreference. This application also claims priority under 35 U.S.C. §119(e)to copending U.S. Provisional Patent Application No. 60/376,962, filedon Apr. 30, 2002, entitled “Adaptive Synchronization Of Service Data,”which application is incorporated entirely herein by reference as well.

FIELD OF THE INVENTION

[0002] Various aspects of the present invention relate to a method anddevice for adaptively changing the synchronization parameters forsynchronizing service data between an institutional data storeassociated with a user and a service provider providingtelecommunication services for the user.

BACKGROUND OF THE INVENTION

[0003] Many telecommunication service users obtain their services for orthrough a corporation or other institution. Thus, a user may obtain awireless telephone service, electronic mail service, voice dialingservice or the like for his or her use as an employee of a corporation.With this arrangement, the institution, the user or both may want theservice provider to provide its services using specific data, hereafterreferred to as service data, which includes data stored in theinstitution's database. For example, a user may subscribe to a voiceactivated dialing (VAD) service for work. The user or the user'semployer might then want the service provider to provide the serviceusing service data that includes the contact information stored in theemployer's corporate database.

[0004] Service providers face a “firewall challenge,” however, whentrying to provide services to end users based upon proprietaryinstitutional databases. Specifically, the service providers must deploytheir services using infrastructure housed within their data centersand/or networks, but these data centers and networks are situatedoutside of the security systems or “firewalls” that many institutionsuse to protect their propriety networks and infrastructure fromunauthorized access. Thus, with the example of a voice activated dialing(VAD) service noted above, the employer's contact information may bestored and maintained in a server such as Microsoft Exchange® server ora Lotus Domino® server situated behind the employer's corporatefirewall.

[0005] For the end user in this example, the simplest solution would beto have the service provider's VAD system directly access the employer'sMicrosoft Exchange® or Lotus Domino® server and extract the user'scontact information directly, without requiring the user's involvement(other than, perhaps, to provide the user's username and password inorder to give the provider initial access to the employer's MicrosoftExchange® or Lotus Domino® server). This approach, however, whileeasiest for the end user and desirable from the service provider'spoint-of-view, is not one that that will typically meet with theinstitution's approval. On one hand, the institution will not want itsend users to be storing corporate credentials (used to access theinstitution's servers) on a system located outside the institution'sdomain. On the other hand, if a service provider's single systemattempts to access data within an institution's server on behalf ofmultiple end users, the institution may have difficulty distinguishingthis legitimate access from a hacker's attack, as they have similarcharacteristics.

[0006] One conventional solution to this “firewall challenge” is todeploy a Virtual Private Network (VPN) that securely bridges the serviceprovider's network and infrastructure to the institution's network andinfrastructure. Virtual Private Networks have a disadvantage, however,in that they require the institution's participation and significantresources to deploy and support. This disadvantage can be especiallycumbersome for larger companies or institutions that are likely to haverelationships with several different service providers and/or multiplenetworks (e.g., for different geographic regions, business units,subsidiaries, etc.).

[0007] Still another disadvantage associated with Virtual PrivateNetworks is that they are based on “tunneling” a secure communicationsession within an insecure communication session that is transportedover the public Internet. While this technique avoids the costsassociated with building large private networks, it can lead toperformance issues, as the “tunneling” process induces additionallatency on top of the latency already inherent in communication over theInternet. Further, because Virtual Private Networks are built on top ofthe Internet, over which neither the service provider nor theinstitution can have total control, performance of Virtual PrivateNetworks can vary significantly based on time-of-day, geography, and anumber of other external

[0008] Another conventional solution to the “firewall challenge” usessynchronization technology. With this technique, the data normallystored and managed in the institution's platforms, like MicrosoftExchange® servers and Lotus Domino® servers, situated behind theinstitution's firewall, is replicated in one or more platformsmaintained by the service provider. More particularly, a device behindthe institution's firewall periodically connects to the serviceprovider's system in order to (1) communicate changes made to the user'sdata through the user's normal interaction with the institution'ssystems, (2) determine if changes have been made to the user's servicedata as a result of the end user's interaction with the serviceprovider, and (3), as needed, transfer data between the institution'ssystem and the service provider's system and otherwise synchronizemultiple instances of the user's service data. This approach overcomesthe “firewall challenge” because the synchronization process can beinitiated by a system operating within the institution's domain using anapproved data transfer protocol, such as HTTP, its encrypted variant,HTTPS, or any other suitable data transfer protocol.

[0009] This approach relies on these periodic connections, or “polling”,because the institution's firewall prevents the service provider'ssystems from sending “change requests” to the institution's systemsexactly when such change events occur. In other words, because theservice provider's systems cannot directly communicate changes to theservice data when and only when such changes occur, the institution'ssystems must instead periodically “check in” with the service provider'ssystems to determine if changes have occurred, even if none have.Failure to regularly make a periodic check could leave important changesun-synchronized, leading to user confusion or worse. For example, atime-critical electronic mail message initiated through the serviceprovider's systems may go undelivered to one or more recipients for anunacceptable period of time, or a meeting initiated through the serviceprovider's systems may not be reflected in the institution's systems ina timely fashion leading to a “double-booking” or other conflict in theuser's schedule.

[0010] The conventional synchronization solution does have someproblems, however. Because the synchronization process is initiated by adevice or system operating behind the institution's firewall and withinthe institution's domain, it is necessary for such solutions to employ a“polling” approach where the institution's system periodically polls theservice provider's system, as noted above. The selection of the pollinginterval or “synchronization interval” offers significant tradeoffs.This is because each concurrent connection has both a fixed andrecurring cost component and the shorter the synchronization intervalthe greater the peak number of concurrent connections will be over agiven period of time.

[0011] The selection of how much and the type of data to be synchronizedduring each synchronization process also presents significant tradeoffs.Like the synchronization operation, data storage also has fixed andrecurring costs, so it is not desirable to store any more data than isneeded. Also, the amount of synchronized data is related to thesynchronization interval because it takes a finite amount of time tosynchronize one or more data sets. Thus the larger the size of eachsynchronized data set and/or the greater the number of such sets, thelonger the required synchronization interval. Otherwise, the number ofconcurrent synchronization communication sessions required to serviceevery end user would approach the number of overall end users, whichwould be cost-prohibitive.

[0012] Still further, the synchronization interval and the amount ofsynchronized data both impact the end user's satisfaction. The shorterthe synchronization interval, the more closely the synchronizationprocess emulates the responsiveness of a direct access model where theservice provider is able to access data in real-time directly from theinstitution's applications and systems. Similarly, the greater thequantity of data synchronized the synchronization process, the moreclosely the synchronization process emulates the responsiveness of theservice provider accessing all available data by interfacing directlywith institution's applications and systems.

[0013] The standard solution to these synchronization tradeoffs is totake one of the following approaches: (1) fixed synchronizationinterval, fixed synchronization data quantity, (2) fixed synchronizationinterval, user-defined synchronization data quantity, (3) user-definedsynchronization interval, fixed synchronization data quantity, or (4)user-defined synchronization interval, user-defined synchronization dataquantity. Each of these approaches has drawbacks, however. For example,the fixed synchronization interval, fixed synchronization data quantityapproach offers predictable costs and is simple in that no end-userdecision-making or configuration is required, but this approach uses anarbitrary synchronization interval and an arbitrary synchronization dataquantity that may not meet the needs of all end users.

[0014] With the fixed synchronization interval, user-definedsynchronization data quantity arrangement, the storage costs are notpredictable, and the end-user must be involved in deciding upon andconfiguring the synchronization data quantity. Moreover, users will tendto “maximize” the synchronized data quantities, thereby driving upstorage costs. With the user-defined synchronization interval, fixedsynchronization data quantity approach, the connection costs are notpredictable, and the end-user must be involved in deciding upon andconfiguring the synchronization interval. Further, users will tend to“minimize” their synchronization intervals, thereby driving upconcurrent connection costs. Lastly, with the user-definedsynchronization interval, user-defined synchronization data quantityarrangement, both the connection costs and the storage costs areunpredictable and the end-user must be involved in a significant amountof decision-making and configuration to determine both thesynchronization interval and the synchronization data quantities.Moreover, users will tend to minimize the synchronization interval andmaximize the synchronized data quantities, driving up both connectioncosts and the storage costs.

BRIEF SUMMARY OF THE INVENTION

[0015] Accordingly, there is a need for synchronization techniques thatallow a service provider to obtain more efficient synchronizationparameters for synchronizing its service data between service datastored in an institutional data store associated with a user. Variousexamples of the present invention advantageously offer a synchronizationmethod and device that adaptively adjusts synchronization parameters,such as the synchronization interval and quantity of synchronized data,on a per-end-user basis in response to actual end-user behavior. Inparticular, heavy users of service data are rewarded with improvedsynchronization parameters, such as a combination of shortersynchronization intervals and increased synchronization data quantities,which provides closer to “direct access” performance. Light users ofservice, on the other hand, are assigned lower cost synchronizationparameters, such as longer synchronization intervals and/or decreasedsynchronization data quantities.

[0016] The various embodiments of the invention thus allowsynchronization resources that would otherwise be wasted on light usersto be conserved and allocated to heavy users. According to theinvention, the synchronization parameters continually change as userbehavior changes, such as when a light user begins to use service moreheavily, so as to constantly optimize the resources employed by theservice provider on both an individual and aggregate basis.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017]FIG. 1 shows one example of a programmable computer that may beused to implement various embodiments of the invention.

[0018]FIG. 2 shows a network employing a synchronization deviceaccording to one embodiment of the invention.

[0019]FIG. 3 illustrates a synchronization device according to oneembodiment of the invention.

[0020]FIG. 4 illustrates one example of a bell curve according to whicha synchronization amount may be increased or decreased in response to anincreased or decreased use of service data, respectively.

DETAILED DESCRIPTION OF EXAMPLES OF THE INVENTION

[0021] As is well known in the art, telecommunication service data usedto provide telecommunication services, such as wireless telephoneservice, electronic mail, voice mail and the like, is conventionallystored and manipulated by programmable computers. This type of computercan be embodied by, for example, an electronic mail account server, awireless application protocol (WAP) gateway device, or a voice mailservices server. Further, this type of computer can be used to implementan adaptive synchronization device according to various embodiments ofthe invention.

[0022]FIG. 1 shows one example of such a programmable computer system101 capable of synchronizing service data between a telecommunicationservice provider and a data store associated with an end user of theservice provider's telecommunication services. The computer system 101includes a processing unit 103, a system memory 105, and a system bus107 that couples various system components, including the system memory105, to the processing unit 103. The system memory 105 may include aread-only memory (ROM) 109 and a random access memory (RAM) 111.

[0023] A basic input/output system 113 (BIOS), containing the routinesthat help to transfer information between elements within the computersystem 101, such as during startup, may be stored in the read-onlymemory (ROM) 109. If the computer system 101 is embodied by a personalcomputer, it may further include a hard disk drive 115 for reading fromand writing to a hard disk (not shown), a magnetic disk drive 117 forreading from or writing to a removable magnetic disk (not shown), or anoptical disk drive 119 for reading from or writing to a removableoptical disk (not shown) such as a CD-ROM or other optical media.

[0024] A number of program modules may be stored on the ROM 109, thehard disk drive 115, the magnetic disk drive 117, and the optical diskdrive 119. A user may enter commands and information into the computersystem 101 through an input device 123, such as a keyboard, a pointingdevice, a touch screen, a microphone, a joystick or any other suitableinterface device. Of course, the computer system 101 may employ avariety of different input devices 123, as is known in the art. Anoutput device 125, such as a monitor or other type of display device, isalso included to convey information from the computer system 101 to theuser. As will be appreciated by those of ordinary skill in the art, avariety of output devices 125, such as speakers and printers, mayalternately or additionally be included in the computer system 101.

[0025] In order to access both the computing systems employed by one ormore service providers and one or more data stores associated with anend user, the computer system 101 preferably is capable of operating ina networked environment using logical connections to one or more remotecomputers, such as the remote computer 127. The computer system 101 maybe connectable to the remote computer 127 through a local area network(LAN) 129 or a wide area network (WAN) 131, such as the Internet. Whenused in a networking environment, the computer system 101 may beconnected to the network through an interface 133, such as a wirelesstransceiver, a modem, an Ethernet connection, or any other suchinterface. While the interface 133 is illustrated as an internalinterface in FIG. 1, it may alternately be an external interface as iswell known in the art. Of course, it will be appreciated that thenetwork connections shown in this figure are exemplary, and other meansof establishing a communications link with other computers to access anelectronic mail account may be used.

[0026]FIG. 2 illustrates a network 201 of devices that include anadaptive synchronization device 203. The network 201 also includes avariety of service provider (or service carrier) infrastructure sytems205. As is known in the art, these service provider infrastructuresytems 205 are used to provide telecommunication services to a varietyof telecommunication devices 207 employed by an end user 209. Forexample, the service provider infrastructure system 205A may be awireless application protocol gateway that communicates with a wirelesstelecommunication device, such as a wireless telephone or personalinformation manager, using the wireless mark-up language (WML), thehand-held device mark-up language (HDML), or another suitablecommunication language.

[0027] Similarly, the service provider infrastructure system 205B may bea packet data gateway for transmitting and receiving information to,e.g., a mobile personal information manager such as a Palm or a PocketPC-based computing device. The packet data gateway 205B may communicatewith the mobile personal information management device 207B using anysuitable communication method, such as a binary synchronization processor an extensible mark-up language (XML). Still further, as shown in FIG.2, the service provider infrastructure system 205C may be a voiceservices platform for transmitting voice messages to and receiving voicemessages from a wireless telephone 207C. In addition, the network 201may include one or more service provider service data stores 211. Asknown in the art, these service data stores 211 (e.g., Internetelectronic mail servers) store service data used by service carriers toprovide telecommunication services, such as electronic mail services, tothe end user 209.

[0028] Referring back to FIG. 2, the adaptive synchronization device 203is included in a subnetwork 213 associated with the end user 209. Forexample, the subnetwork 213 may be a network maintained by the enduser's employer or any other institution with which the end user isassociated, such as a school, research center, or the like. Thesubnetwork 213 includes a data store 215 that stores data associatedwith the end user 209. Thus, the data store 215 may store data used by aMicrosoft Exchange® server or a Lotus Domino® server that containscontact information associated with the end user 209. If the end user209 is a sales representative for an employer that maintains subnetwork213, then the data store 215 may, e.g., include the name, telephonenumber, electronic mail address, and other address information relatingto sales prospects of the employer. The subnetwork 213 may also includea firewall 217 to protect the subnetwork 213 from unauthorized access.Such firewalls are well known in the art, and thus will not be describedhere in detail.

[0029] As will be explained in detail below, the adaptivesynchronization device 203 synchronizes the end user's service datastored in the data store 215 on one side of the firewall 217 withservice data for the end user 209 stored in a synchronization servicedata store 219 maintained on an opposite side of firewall 217. As seenin FIG. 2, the synchronization service data store 219 provides servicedata to the service provider infrastructure systems 205 and the serviceprovider data stores 211. Using this arrangement, the service providerscan employ service data stored behind the firewall 217 in data store 215without having to actually penetrate the firewall 217. Instead, theservice provider infrastructure systems 205 and the service providerdata stores 211 can directly access the service data from thesynchronization service data store 219.

[0030]FIG. 3 illustrates the adaptive synchronization device 203 in moredetail. As seen in this figure, the adaptive synchronization device 203includes a control unit 301, an input unit 303, and an output unit 305.The adaptive synchronization device 203 also includes a synchronizationprocess unit 307, a user service data access detection unit 309, and asynchronization adaptation unit 311. The control unit 301 operates tocontrol the exchange of information between each of the other controlunits 303-311.

[0031] As will be appreciated by those of ordinary skill in the art, oneor more components of the adaptive synchronization device 203 can beembodied using software implemented on a computer system, such as thecomputer system 101 described with regard to FIG. 1 above. For example,the input unit 303, the output unit 305, the synchronization processunit 307, the user service data access detection unit 309, and thesynchronization adaptation unit 311 can each be embodied by softwaresubroutines. The control unit 301 may then be a control software routinethat calls the various software subroutines embodying the differentunits 303-311. Of course, those of ordinary skill in the art willappreciate that one or more of the units 301-311 may also be embodied byelectronic circuitry.

[0032] The input unit 303 receives information provided from outside ofthe adaptive synchronization device 203. For example, the input unit 303may receive messages from the synchronization service data store 219 orreceive service data from the data store 315. Similarly, the output unit305 transmits information to devices outside of the adaptivesynchronization device 203. Thus, the output unit 203 may transmitcontrol messages to the synchronization service data store 219, transmitrequest messages requesting information from the data store 315, andtransmit service data received by the input unit 303 from the data store315 to the synchronization service data store 219. The operation of theinput unit 303 and output unit 305 are known in the art, and thus willnot be discussed in here detail.

[0033] The synchronization unit 307 controls the synchronization of databetween the data store 215 and the synchronization service data store219. That is, the synchronization unit 307 operates to ensure that auser's service data stored in the synchronization service data store 219is synchronized with the user's service data stored in the data store215. Thus, if the data store 215 contains new user service data (or anew deletion of the user's service data) that is not stored in thesynchronization service data store 219, then the synchronization unit307 updates the synchronization service data store 219 to include thenew data (or new deletion of data) during a synchronization process.Similarly, if the synchronization service data store 219 contains newuser service data (or a new deletion of the user's service data) addedby the user's use of the service provider's telecommunication servicesthat is not stored in the data store 215, then the synchronization unit307 updates the data store 215 to include the new data (or new deletionof data) during a synchronization process.

[0034] Accordingly, the synchronization unit 307 may instruct the outputunit 305 to transmit a request for the service data to the data store215, instruct the input unit 303 to receive the requested service datafrom the data store 215, and then instruct the output unit 305 toforward the received service data to the synchronization service datastore 219. Alternately, the synchronization unit 307 may control asynchronization process that operates outside of the adaptivesynchronization device 203 (e.g., a synchronization process involvingdirect communication between the data store 215 and the synchronizationservice data store 219, or involving another intermediary device betweenthe data store 215 and the synchronization service data store 219).

[0035] The user service data retrieval detection unit 309 detects theretrieval of service data for the end user 209 from the synchronizationservice data store 219. More particularly, the user service dataretrieval detection unit 309 detects the retrieval of service data for auser by a service provider infrastructure system 205 or a serviceprovider service data store 211. According to some embodiments of theinvention, the user service data retrieval detection unit 309 detectsand records the occurrence of each retrieval of service data associatedwith the end user 209 from the synchronization service data store 219.With alternate embodiments of the invention, the user service dataretrieval detection unit 309 detects and records the quantity ofretrieved service data each time that service data associated with theend user 209 is retrieved from the synchronization service data store219. According to still other embodiments of the invention, the userservice data retrieval detection unit 309 detects and records both theoccurrence of each retrieval of service data associated with the enduser 209 and the, quantity of service data retrieved.

[0036] The synchronization adaptation unit 311 then employs theinformation obtained by the user service data retrieval detection unit309 to determine the retrieval amount of the user's service data fromthe synchronization service data store 219, and whether the retrievalamount has increased or decreased. It should be noted that thesynchronization adaptation unit 311 may determine the retrieval amountin a variety of ways. For example, with some embodiments of theinvention, the synchronization adaptation unit 311 determines theretrieval amount based upon the frequency of retrieval of the user'sservice data in the synchronization service data store 219.

[0037] Further, if the synchronization adaptation unit 311 determinesthe retrieval amount of the user's service data based upon the frequencyat which the service data has been retrieved, the frequency value mayalso be determined in a variety of ways. For example, thesynchronization adaptation unit 311 can determine the service dataretrieval frequency based solely upon the two most recent retrievals ofthe user's service data from the synchronization service data store 219.Thus, if the service provider infrastructure system 205A made a firstrequest for service data for the user at 1:00 A.M., the service providerinfrastructure system 205B made a second request for service data forthe user at 1:30 A.M. and the service provider infrastructure system205C made a third request for service data for the user at 1:45 A.M.,then the synchronization adaptation unit 311 would determine thefrequency of access to the user's service data to be once every 15minutes.

[0038] Alternately, the synchronization adaptation unit 311 coulddetermine the retrieval frequency by averaging together the intervalsbetween a predetermined number of retrievals requested from thesynchronization service data store 219. Thus, if the synchronizationadaptation unit 311 determines the retrieval frequency by averagingtogether the intervals between the three most recent retrieval requestsfor service data for a user, then synchronization adaptation unit 311would determine a retrieval frequency of 22.5 minutes by averaging theinterval between the first request and the second request (i.e., 30minutes) with the interval between the second request and the thirdrequest (i.e., 15 minutes). Still further, the synchronizationadaptation unit 311 could determine the retrieval frequency based uponthe number of requests for service data for a user received during apredetermined time period, e.g., each hour. With this embodiment, forthe above example the synchronization adaptation unit 311 woulddetermine the retrieval frequency to be every twenty minutes (i.e., theaverage of three retrieval requests within 60 minutes).

[0039] In alternate embodiments of the invention, the synchronizationadaptation unit 311 may determine the retrieval amount of the user'sservice data based upon the quantity of service data retrieved from thesynchronization service data store 219. As before, the quantity ofretrieved service data can be measured in a variety of ways. Thus, thequantity value can be defined by using individually retrieved recordfields of the service data, based upon a specified window of time overwhich the retrieved service data was accumulated, or by using the numberof records retrieved from the synchronization service data store 219.

[0040] For example, if the retrieved service data for the user iselectronic mail messages, the value of the quantity of retrieved servicedata could be determined based upon the number of retrieved electronicmail file folders. With alternate embodiments of the invention, thevalue of the quantity of retrieved service data could be determinedbased upon the specific period of time (e.g., five days) over which theretrieved messages were received. For still other embodiments of theinvention, the value of the quantity of retrieved service data could bedetermined based simply upon the number of retrieved messages (e.g., 50electronic mail messages). As will be appreciated by those of ordinaryskill in the art, the particular method for determining the quantity ofthe retrieved service data for a user can be determined according to anytechnique suitable to the desired application of the invention.

[0041] In still other embodiments of the invention, the synchronizationadaptation unit 311 may determine the retrieval amount based onselection events initiated by the user. For example, if a userunsuccessfully attempts to select data, such as an e-mail message orappointment that falls outside of the currently synchronized amount(e.g., where such an amount is initially determined by, for example, adate range relative to the then-current date), then the synchronizationadaptation unit 311 may immediately adjust the applicable data amountfor the user to ensure that a subsequent request for the data will besuccessful. When doing so, the synchronization adaptation unit 311 mayalso communicate to the user that the adjustment has been made and when,based on the then-current interval, the user should reattempt therequest. Other various embodiments of the invention may even adjust thedata amount on a predictive basis before an unsuccessful data requestactually occurs. For example, if the user has made multiple requests fordata in a short period of time where such data fall close to thethen-current “boundary” for that particular data type, then thesynchronization adaptation unit 311 may pro-actively adjust the boundaryon the assumption that a spike in activity near a “boundary” is anindicator that a request for data beyond the “boundary” is more likelyto occur. The synchronization adaptation unit 311 may then readjust thedata amount if this activity pattern subsides.

[0042] According to still other embodiments of the invention, thesynchronization adaptation unit 311 may determine the amount ofretrieved service data for the user based upon both the frequency ofretrieval requests and the quantity of data obtained during eachretrieval. Thus, the synchronization adaptation unit 311 may determineboth a retrieval frequency value and a retrieved service data quantityvalue. Alternately, the synchronization adaptation unit 311 maydetermine a single retrieval amount value using both a determinedretrieval frequency and a determined of quantity of retrieved servicedata. For example, the synchronization adaptation unit 311 may multiplya determined retrieval frequency by a first constant, multiply adetermined retrieval quantity by a second constant, and then add the tworesulting values to obtain a single service data retrieval amount value.Again, as will appreciated by those of ordinary skill in the art, theparticular method for determining a retrieval amount of retrievedservice data for a user can be determined by using any suitabletechnique appropriate to the desired application of the invention.

[0043] As previously noted, the synchronization adaptation unit 311 alsodetermines whether the determined retrieval amount of retrieved servicedata for a user is an increase or a decrease over the previouslydetermined retrieval amount of retrieved service data for the user.Thus, if the synchronization adaptation unit 311 determines theretrieval amount to be the retrieval frequency based upon the intervalbetween the most recent two retrieval requests, then for the aboveexample (using the first, second and third requests) the synchronizationadaptation unit 311 will determine a first retrieval frequency of oneper thirty minutes, and a second retrieval frequency of one per fifteenminutes. With this example, the synchronization adaptation unit 311would then determine that the second retrieval frequency, and thus theretrieval amount, has increased over the first retrieval frequency.

[0044] In addition to determining the retrieval amount of retrievedservice data for a user and whether this retrieval amount is an increaseor a decrease over the previously determined retrieval amount, thesynchronization adaptation unit 311 also determines the synchronizationamount for synchronizing service data between the data store 215 and thesynchronization service data store 219. More particularly, thesynchronization adaptation unit 311 determines the synchronizationamount based upon the whether the determined retrieval amount hasincreased or decreased over previously determined retrieval amounts.

[0045] As used herein, the term synchronization amount includes anysynchronization parameter that, when increased, improves the operationof the synchronization process. (e.g., the quantity of data synchronizedduring a synchronization process). The term synchronization amountincludes the inverse of any synchronization parameter that, whendecreased, improves the operation of the synchronization process (e.g.,the inverse of the interval between synchronization processes, or thesynchronization frequency).

[0046] Thus synchronization adaptation unit 311 can determine thesynchronization amount according to a variety of techniques. For someembodiments of the invention, the synchronization adaptation unit 311determines the synchronization amount to be the frequency at which theuser's service data stored in the data store 215 is synchronized withthe user's service data stored in the synchronization service data store219. According to still other embodiments of the invention, thesynchronization amount is the quantity of service data synchronizedbetween the data store 215 and the synchronization service data store219 during a synchronization process. With still further embodiments ofthe invention, the synchronization amount includes both the quantity ofservice data synchronized between the data store 215 and thesynchronization service data store 219 and the frequency ofsynchronization. Of course, the synchronization amount may also be orinclude other synchronization parameters (or their inverses) asdesirable for the particular application of the invention.

[0047] It should be noted that the synchronization adaptation unit 311can determine the synchronization amount based upon an increase ordecrease of any type of determined retrieval amount. Thus, thesynchronization adaptation unit 311 can use an increase or decrease in aretrieval amount that includes both the retrieval frequency and thequantity of retrieved service data to determine a synchronization amountthat includes both the frequency of synchronization and the quantity ofsynchronized service data. With this example, the synchronizationadaptation unit 311 can increase the synchronization frequency when theretrieval frequency increases, and decrease the synchronizationfrequency when the retrieval frequency decreases. Similarly, thesynchronization adaptation unit 311 can increase the quantity ofsynchronized service data when the quantity of retrieved service dataincreases, and decrease the quantity of synchronized service data whenthe quantity of retrieved service data decreases.

[0048] With still other embodiments of the invention, thesynchronization adaptation unit 311 can use an increase or decrease in aretrieval amount that includes both the retrieval frequency and thequantity of retrieved service data to determine a synchronization amountthat includes only the frequency of synchronization, or only thequantity of synchronized service data. In alternate embodiments ofinvention, the synchronization adaptation unit 311 can use an increaseor decrease in a retrieval amount that includes only the retrievalfrequency or only the quantity of retrieved service data to determine asynchronization amount that includes both the frequency ofsynchronization and the quantity of synchronized service data. As willbe appreciated by those of ordinary skill in the art upon a review ofthis application, an increase or decrease in any combination of types ofretrieval amount values can be used to determine an increase or decreasein any combination of types of synchronization amount values, asappropriate for the desired application of the invention.

[0049] It should also be noted that the synchronization adaptation unit311 can determine the specific increase or decrease in thesynchronization amount according to a variety of techniques. Accordingto some embodiments of the invention, for example, the synchronizationadaptation unit 311 increases the synchronization amount based upon anincrease in the retrieval amount according to the lower half of a bellcurve, such as the half bell curve shown in FIG. 4.

[0050] As seen in this figure, the degree to which the synchronizationamount is increased significantly as the value of the retrieval amountincreases from zero to a threshold value X. Then, as the value of theretrieval amount continues to increase from the threshold value X to amaximum, the degree to which the synchronization amount is increaseddeclines to zero. For example, a “light” end user whosetelecommunication use requires his or her service provider to have arelatively low service data retrieval amount for the user's service datamay have an initial synchronization interval of 45 minutes. As theuser's service data retrieval amount increased, the synchronizationadaptation unit 311 might then cut the synchronization by a third to 15minutes, and then, with a still increased retrieval amount, again by athird, to a five-minute synchronization interval.

[0051] Advantageously, this arrangement accounts for abrupt changes inuser behavior. One such change in behavior that is particularly risky isthe “trade show effect,” or light users who on occasion quickly becomeheavy users for short periods of time (the risk being that they have apoor user experience because the synchronization parameters haveadjusted to be very high). For example, an end user who is a productmanager for his or her employer may generally be a light user (i.e., whorequires his or her service provider to infrequently retrieve his or herservice data from the synchronization service data store 291), butrelies rather heavily on the service provider's telecommunicationservices when on the road for trade shows. While at the trade shows, theuser will experience evident service data synchronization deficienciesonly initially, because, according to the invention, the service datasynchronization amount increases the more the telecommunication servicesare used.

[0052] According to some embodiments of the invention, thesynchronization adaptation unit 311 will also decrease thesynchronization amount according to a rate corresponding to one half ofa bell curve. Thus, even if the carrier chooses to cut thesynchronization amount (e.g., the synchronization interval) dramaticallyafter an end user's first usage of the service data (thereby quicklyimproving the user's experience), its costs will not significantlyincrease because the synchronization amount will readjust to becomesmaller as the user stops using the device. Only that short interval oftime will have entailed high costs to the provider, and the total costover time is much lower than if, e.g., the frequency of synchronizationwere constant. It should be noted that the bell curve may be that sameas the bell curve governing the increase rate. Alternately, thesynchronization adaptation unit 311 may provide a hysteresis effect byemploying a different bell curve than the rate of synchronization amountincrease, or by decreasing the synchronization amount according to adifferent rate pattern altogether

[0053] The present invention has been described above by way of specificexemplary embodiments, and the many features and advantages of thepresent invention are apparent from the written description. Thus, it isintended that the appended claims cover all such features and advantagesof the invention. Further, because numerous modifications and changeswill readily occur to those skilled in the art, the specification is notintended to limit the invention to the exact construction and operationas illustrated and described. For example, the invention may include anyone or more elements from the apparatus and methods described herein inany combination or subcombination. Accordingly, there are any number ofalternative combinations for defining the invention, which incorporateone or more elements from the specification (including the drawings,claims, and summary of the invention) in any combinations orsubcombinations. Hence, all suitable modifications and equivalents maybe considered as falling within the scope of the appended claims.

What is claimed is:
 1. A method of synchronizing service data for a user, comprising: detecting an increase in frequency of use of service data by a service provider on behalf of the user; and when an increase in frequency of use of service data by a service provider on behalf of the user has been detected, increasing a frequency of synchronization of service data between the service provider and a data storage device associated with the user.
 2. The method of synchronizing service data for a user recited in claim 1, further including: detecting a decrease in frequency of use of service data by a service provider on behalf of the user; and when a decrease in frequency of use of service data by a service provider on behalf of the user has been detected, decreasing a frequency of synchronization of service data between the service provider and a data storage device associated with the user.
 3. The method of synchronizing service data for a user recited in claim 2, wherein the frequency of synchronization of service data is decreased by an increasing amount for each decrease in frequency of use of service data below a threshold value and decreased by an decreasing amount for each decrease in frequency of use of service data above the threshold value.
 4. The method of synchronizing service data for a user recited in claim 1, wherein the frequency of synchronization of service data is increased by an increasing amount for each increase in frequency of use of service data below a threshold value and increased by a decreasing amount for each increase in frequency of use of service data above the threshold value.
 5. The method of synchronizing service data for a user recited in claim 1, further including: when an increase in frequency of use of service data by a service provider on behalf of the user has been detected, increasing a quantity of service data synchronized during synchronization of service data between the service provider and a data storage device associated with the user.
 6. The method of synchronizing service data for a user recited in claim 5, wherein the quantity of service data synchronized during synchronization of service data is increased by an increasing amount for each increase in frequency of use of service data below a threshold value and increased by a decreasing amount for each increase in frequency of use of service data above the threshold value.
 7. The method of synchronizing service data for a user recited in claim 5, further including: detecting a decrease in frequency of use of service data by a service provider on behalf of the user; and when a decrease in frequency of use of service data by a service provider on behalf of the user has been detected, decreasing a quantity of service data synchronized during synchronization of service data between the service provider and a data storage device associated with the user.
 8. The method of synchronizing service data for a user recited in claim 7, wherein the quantity of service data synchronized during synchronization of service data is decreased by an increasing amount for each decrease in frequency of use of service data below a threshold value and decreased by an decreasing amount for each decrease in frequency of use of service data above the threshold value.
 9. The method of synchronizing service data for a user recited in claim 1, wherein the data storage device associated with the user is an institutional database maintained by an institution associated with the user.
 10. The method of synchronizing service data for a user recited in claim 9, wherein the data storage device associated with the user is a corporate data store maintained by an employer of the user.
 11. The method of synchronizing service data for a user recited in claim 9, wherein the data store is a Microsoft Exchange® database or a Lotus Notes® database.
 12. A method of synchronizing service data for a user, comprising: detecting an increase in a quantity of service data used by a service provider on behalf of the user; and when an increase in a quantity of service data used by a service provider on behalf of the user has been detected, increasing a quantity of service data synchronized during synchronization of service data between the service provider and a data storage device associated with the user.
 13. The method of synchronizing service data for a user recited in claim 12, further including: detecting a decrease in a quantity of service data used by a service provider on behalf of the user; and when a decrease in a quantity of service data used by a service provider on behalf of the user has been detected, decreasing a quantity of service data synchronized during synchronization of service data between the service provider and a data storage device associated with the user.
 14. The method of synchronizing service data for a user recited in claim 13, wherein the quantity of service data synchronized during synchronization of service data is decreased by an increasing amount for each decrease in quantity of service data used by the service provider below a threshold value and decreased by an decreasing amount for each decrease in quantity of service data used by the service provider above the threshold value.
 15. The method of synchronizing service data for a user recited in claim 12, wherein the quantity of service data synchronized during synchronization of service data is increased by an increasing amount for each increase in quantity of service data used by the service provider below a threshold value and increased by a decreasing amount for each increase in quantity of service data used by the service provider above the threshold value.
 16. The method of synchronizing service data for a user recited in claim 12, further including: when an increase in quantity of service data used by the service provider on behalf of the user has been detected, increasing a frequency of synchronization of service data between the service provider and a data storage device associated with the user.
 17. The method of synchronizing service data for a user recited in claim 16, wherein the frequency of synchronization of service data is increased by an increasing amount for each increase in quantity of service data used by the service provider below a threshold value and increased by a decreasing amount for each increase in quantity of service data used by the service provider above the threshold value.
 18. The method of synchronizing service data for a user recited in claim 16, further including: detecting a decrease in quantity of service data used by the service provider on behalf of the user; and when a decrease in quantity of service data used by the service provider on behalf of the user has been detected, decreasing a frequency of synchronization of service data between the service provider and a data storage device associated with the user.
 19. The method of synchronizing service data for a user recited in claim 18, wherein the frequency of synchronization of service data is decreased by an increasing amount for each decrease in quantity of service data used by the service provider below a threshold value and decreased by an decreasing amount for each decrease in quantity of service data used by the service provider above the threshold value.
 20. The method of synchronizing service data for a user recited in claim 12, wherein the data storage device associated with the user is an institutional data store maintained by an institution associated with the user.
 21. The method of synchronizing service data for a user recited in claim 20, wherein the data storage device associated with the user is a corporate data store maintained by an employer of the user.
 22. The method of synchronizing service data for a user recited in claim 20, wherein the data store is a Microsoft Exchange® data store, a Microsoft Outlook data store, a Lotus Domino data store or a Lotus Notes® data store. 